gtkwindow: Disconnect GdkSeat::device-removed callback on finalize
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 19 Jan 2018 17:47:21 +0000 (18:47 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 19 Jan 2018 17:47:21 +0000 (18:47 +0100)
Otherwise dangling callbacks may lead to crashes.

gtk/gtkwindow.c

index d82d7da67e7eb120fa4ac6ddb4b7cf5ba4b62d62..147e5050582e482eae3e71c5a47ffcd58c815f94 100644 (file)
@@ -6027,6 +6027,10 @@ gtk_window_finalize (GObject *object)
       priv->keys_changed_handler = 0;
     }
 
+  g_signal_handlers_disconnect_by_func (gdk_display_get_default_seat (priv->display),
+                                        device_removed_cb,
+                                        window);
+
 #ifdef GDK_WINDOWING_X11
   g_signal_handlers_disconnect_by_func (gtk_settings_get_for_display (priv->display),
                                         gtk_window_on_theme_variant_changed,